Rubygemsでライブラリを公開したので、手順をまとめてみた
こんにちは。望月です。
先日のエントリで、AWS CLIの設定ファイルに記述されたアクセスキーをRubyから利用する方法について紹介しました。せっかくなので、aws-profile_parserという名前でGem化してRubyGems.orgにて公開することにしました。
初めてgemを公開したので色々と調べながらでしたが、手順は非常に簡単でした。私用の備忘録として手順を残しておきます。
雛形の作成
Gemとして公開するためには、色々なファイルが必要になります。使い方を説明するREADMEファイルや、Gemファイルのメタデータについて記述される.gemspecファイルなどです。これらを手作業で作成するのではなく、コマンドで作成しましょう。作成には様々な方法があるようですが、私は最も一般的(と思われる)bundlerを利用して行いました。手元にbundlerがインストールされてイない方はgem install bundlerでインストールしておいて下さい。
今回は、aws-profile_parserという名前で作成します。
$ bundle gem aws-profile_parser -t create aws-profile_parser/Gemfile create aws-profile_parser/Rakefile create aws-profile_parser/LICENSE.txt create aws-profile_parser/README.md create aws-profile_parser/.gitignore create aws-profile_parser/aws-profile_parser.gemspec create aws-profile_parser/lib/aws/profile_parser.rb create aws-profile_parser/lib/aws/profile_parser/version.rb create aws-profile_parser/.rspec create aws-profile_parser/spec/spec_helper.rb create aws-profile_parser/spec/aws/profile_parser_spec.rb create aws-profile_parser/.travis.yml Initializing git repo in /Users/mochizukimasao/src/aws-profile_parser
bundle gemを実行すると、カレントディレクトリ以下に新しいディレクトリが作成され、Gem作成に必要なファイル一式が作成され、Gitリポジトリの初期化まで行ってくれます。-tオプションを付記すると、RSpecの雛形も併せて作成してくれます。また、-bオプションを付記すると、実行ファイルも一緒に作成してくれますが今回は利用しませんでした。あとはひたすら実装していきます。
RubyGems.orgへのユーザ登録
実装が終わったら公開のための準備をします。RubyGems.orgでgemを公開する前に、ユーザ登録を済ませておく必要があります。以下のURLからユーザ登録を行いましょう。
アカウントの作成が完了したら、コマンドラインからgemをリリースする際に必要なAPI Keyを登録しておきます。登録するためのコマンドはWebサイトに記載されているので、そのまま実行しましょう。
$ curl -u <username> https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
公開
それでは準備が完了したので、公開しましょう。
$ bundle exec rake release aws-profile_parser 0.0.1 built to pkg/aws-profile_parser-0.0.1.gem. Tagged v0.0.1. Pushed git commits and tags. Pushed aws-profile_parser 0.0.1 to rubygems.org.
rake releaseコマンドは、GithubへのPushとタグ作成、RubyGemsへの登録などを一括で行ってくれます。この作業が完了すれば公開完了です。あとはどの環境からでも、gem install aws-profile_parserを実行すれば今公開したライブラリが利用可能になります。
なお、デフォルトでrake installというタスクが用意されています。このタスクを実行すると、gemのビルドとローカルへのインストールを実行してくれます。gemを公開する前にテストを行いたい場合は利用しましょう。 *1
使い方
基本的には先述のエントリで述べたとおりですが、名前空間がAWS::ProfileParserに変更になっていますので注意して下さい。詳しくはGithubのREADMEを参照して下さい。
まとめ
このブログの長さを見て頂ければわかると思いますが、gemを公開するまでのハードルは非常に低いです。初めてのライブラリ公開でしたが、特に悩むことなく実行することができました。今後も何かしらの便利ツールを作ってgemを公開していきたいと思います。そしてaws-profile_parserへのPull Requestをお待ちしております。
参考資料
脚注
- 最初このタスクの存在に気づかず0.0.1と0.0.2をbugfixのために使ってしまいました。。 ↩